博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC简捷调用EasyUI的datagrid
阅读量:5907 次
发布时间:2019-06-19

本文共 5373 字,大约阅读时间需要 17 分钟。

一直想在项目中使用EasyUi的datagrid,但种种原因,没有实现。

这两天在开发一个项目中,愿望终于得以实现。

先看效果:

实现步骤是这样的:

1,在页面中画dataGrid,具体代码如下:

function ListLoad() { var columnsSetting = [ { field: 'EnName', title: '英文名', width: 100,sortable:true, formatter: function (val, rowData) { var url = "/User/Index/66666666"; return ""+rowData.EnName+""; } }, { field: 'CnName', title: '中文名', width: 80 }, { field: 'DomainName', title: '域帐号', width: 120 }, { field: 'ID', title: 'ID', width: 80, align: 'right' }, { field: 'unitcost', title: '部门', width: 80, align: 'right' }, { field: 'attr1', title: '权限组', width: 250 }, { field: 'status', title: '状态', width: 60, align: 'center' } ]; $('#UserListTb').datagrid({ url: '/User/GetUserList', queryParams: { name: "wuf" }, method: 'get', width: 1077, height: 250, fitColumns: true, pagination: true, pageSize: 20, singleSelect: true, showPageList: false, pageList: [1,20, 50, 100], rownumbers: true, nowrap: false, loadMsg: 'Load……', columns: [columnsSetting], onLoadSuccess: function (row) {}, onLoadError: function (arguments) {} }); }
View Code

2,后台接收参数,返回需要的Json数据。

///         /// 用户列表Json        ///         /// 
public ActionResult GetUserList() { int currentPageIndex = RequestExtension.GetQueryString
("page", 0); int pagesize = RequestExtension.GetQueryString
("rows", 0); String sort = RequestExtension.GetQueryString
("sort", ""); String order = RequestExtension.GetQueryString
("order", ""); String name = RequestExtension.GetQueryString
("name", ""); Pagination pagin = new Pagination { CurrentPageIndex = currentPageIndex, PageSize = pagesize, OrderBy = String.IsNullOrEmpty(sort) ? "" : String.Concat(sort + " " + order) }; UsersModel condition = new UsersModel(); KeyValuePair
> list = usersRepository.UsersPagination(pagin, condition); return JsonExtension.JsonPagination(list.Value, pagin.CurrentPageIndex, pagin.PageSize, list.Key.TotalItemCount); }
View Code

3,关键代码,实现Json分页的方法。

///         /// 分页处理        ///         ///         ///         ///         /// 
public static JsonResult JsonPagination(IEnumerable
dataList, int page, int rows, int dataListAuctalCount = -1) { var result = dataList; Dictionary
json = new Dictionary
(); int total = dataListAuctalCount; if (total == -1 && dataList != null) { //自动分页 total = dataList.Count(); result = dataList.Skip((page - 1) * rows).Take(rows).ToList(); } json.Add("total", total); json.Add("rows", result); return new JsonResult() { Data = json, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; }
View Code

4,数据分页查询代码

public KeyValuePair
> UsersPagination(Pagination pagin, UsersModel condition) { using (SqlConnection conn = DapperFactory.CrateOpenConnection()) { String condtionStr = ""; String orderBy = "CreateTime DESC"; if (!String.IsNullOrEmpty(pagin.OrderBy)) { orderBy = pagin.OrderBy; } String executeQuery = String.Format(@"WITH pagintable AS( SELECT ROW_NUMBER() OVER(ORDER BY {1} )AS RowID, ID, DomainName, EnName, PassWord, CnName, Email, DeptID, RoleId, CreateMan, CreateTime, EditMan, EditTime, IsValid FROM Users WHERE 1= 1 {0} ) SELECT * FROM pagintable where RowID between ((@CurrentPageIndex - 1) * @PageSize) + 1 and (@CurrentPageIndex * @PageSize)", condtionStr, orderBy); String executeCount = String.Format("SELECT COUNT(*) AS CountNum FROM Users WHERE 1= 1 {0} ", condtionStr); var mixCondition = new { CurrentPageIndex = pagin.CurrentPageIndex, PageSize = pagin.PageSize }; List
listScore = conn.Query
(executeQuery, mixCondition).ToList(); pagin.TotalItemCount = conn.Query
(executeCount, mixCondition).SingleOrDefault
(); KeyValuePair
> result = new KeyValuePair
>(pagin, listScore); return result; } }
View Code

看着这精简的代码,和界面上强大的功能,真是有种IT人的自豪感,亲爱的您,是不是也有这种感觉呢?

 

转载于:https://www.cnblogs.com/ushou/p/3718610.html

你可能感兴趣的文章
golang strconv包部分函数使用
查看>>
Retinex系列之McCann99 Retinex 分类: 图像处理 ...
查看>>
卸载mysql
查看>>
常见正则表达式
查看>>
POJ 3049 DFS
查看>>
Jsp 错题分析
查看>>
WTL使用ATL的CImage
查看>>
IOS 学习笔记(4) 控件 标签(UILabel)的使用方法
查看>>
mysql添加外键
查看>>
利用MyEclipse连接数据库并自动生成基于注解或者XML的实体类
查看>>
函数进阶
查看>>
第七周
查看>>
P1631 序列合并
查看>>
P1281 书的复制
查看>>
mongo同步到es
查看>>
用C#下的Raw
查看>>
mysql / sqlserver / oracle 常见数据库分页
查看>>
combo
查看>>
spring mvc 支持json
查看>>
Access数据库SQL注入(Access SQL Injection)
查看>>